// axios的封装处理
import axios from "axios"
// 1.根域名配置
// 2.超时时间
// 3.请求拦截器 / 响应拦截器
const request = axios.create({
    baseURL: 'http://geek.itheima.net/v1_0',
    timeout: 5000
})

// 请求拦截器
// 在请求发送之前 做拦截 插入一些自定义的配置[参数的处理]
request.interceptors.request.use(config => {
    return config
}, error => {
    return Promise.reject(error)
})

// 添加响应拦截器
// 在响应返回到客户端之前做拦截 重点处理返回的数据
request.interceptors.response.use(response => {
    // 2XX范围内的状态码都会触发该函数
    // 对响应数据做点什么
    console.log('response', response)
    const { status, data } = response
    if (status === 201) {
        console.log(data.message)
        return {...data, status}
    }
}, error => {
    console.log('error', error)
    const { status, data } = error.response
    if (status === 400) {
        console.log(data.message)
        return {...data, status}
    } else {
        return Promise.reject(error)
    }
    // 超出2XX范围的状态码都会触发该函数
    // return Promise.reject(error)
})

export {request}